<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<% request.setAttribute("ctx", request.getContextPath()); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="Shortcut Icon" href="${ctx}/favicon.ico">
    <title>${doc.name} - 文档预览</title>
    <script type="text/javascript" src="${ctx}/js/jquery.min.js"></script>
    <script type="text/javascript" src="${ctx}/js/flexpaper.js"></script>
    <style type="text/css" media="screen">
        body {
            margin: 0;
            padding: 0;
        }

        #header {
            height: 80px;
        }

        #crumb {
            height: 40px;
        }
    </style>
</head>
<body>
<div id="header"></div>
<div id="crumb"></div>
<div id="documentViewer" class="flexpaper_viewer"></div>
<script type="text/javascript">
    // <![CDATA[
    function getDocViewUrl() {
        // 看看源码, 擦format必填
        // 简单模式压根不传递 format, page
        //return "2.swf&doc=xxx&format={format}&page={page}";
//            return "2.swf?doc=ocname&format={format}&page={page}";
        // 页码,padding
        // 大括号内 最后一个, 后被翻译为总页数
        //return "{Axis.txt.swf?doc=123&format={format}&page=[*,1],100}";
        //return "{fp/download?name=Hudson+Sonar+Maven+SVN.doc&page=[*,0],15}"
        // escape 不会编码 +
        // 格式不能变, 少了format片段就不对了
        return "{snapshot?fid=${doc.pdfHash}&format={format}&page=[*,0],${doc.totalPages}}";
        // format, [*,0],total
        // page 必须是最后一个参数
        // 必须包含 {format} {page}
        // 认为不是分野模式
        //return "{fp/download?name=${param['name']}&type={format}}";//&page=[*,0],${param['totalPages']}}";
        //return "{fp/download?name=${param['name']}&type={format}&p=[*,0],${param['totalPages']}";
        //return "fp/download?f={format}&p={p}&cc=123&{page}&name=${param['name']}&t=mm&mm=123&type={format}";
        //return "Axis.txt.swf?f={format}&p={}&cc=123&{page}&name=${param['name']}&t=mm&mm=123&type={format}";
        // 只能携带一个参数...
        // {?,total}
        //return "Axis.txt.swf?p={100,1000}&cc=123&{page}&name=${param['name']}&t=mm&mm=123&type={format}";
        // format 是必须的
        // return "Axis.txt.swf?p={11,1000}&{format}";
        // 0 被替换为当前页码, 其余的原样输出 0 --> page 00 --> pagepage 100--> 1pagepage
        // {} --> page
        // indexOf { > 0 [*, , ] >0
        return "Axis.txt.swf?p={0,1000}&f={format}";
    }

    function getSwfUrl() {
        // 0 不被替换
        // {} 内,后被翻译为总页码, ","前原样输入, 不含,{}被翻译为内容+页码
        return "Axis.txt.swf?{,1000}f={format}";// --> p=0&f=formatpage
        //return "Axis.txt.swf?p={0,1000}&f={format}";// --> p=0&f=formatpage
    }

    function getSearchUrl() {
        return "ds?id=mm&page={page}&text=[searchterm]";
    }
    $(function () {
        /*
         * flexpaper 会在初始化时获取目标元素css中显式设置的宽和高(它没有获取实际宽高),因此在初始化之前必须设置
         */
        $('#documentViewer').css({
            width: '100%',
            //width: document.documentElement.clientWidth - 200 + "px",
            height: document.documentElement.clientHeight - 120 + "px"
        });
        // 允许以 param方式来传递参数
        $('#documentViewer').FlexPaperViewer({
            // 其实不区分大小写
            config: {
                jsDirectory: '${ctx}/js/',
                localeDirectory: '${ctx}/locale/',
                localeChain: 'zh_CN',
                DOC: escape(getDocViewUrl()),
                // SwfFile : '{samples/Classic_Sample.pdf_[*,0].swf,16}',
                // SwfFile : '{samples/Classic_Sample.pdf?p=_[*,0].swf,16}',
                /*
                 PdfFile : 'samples/Classic_Sample_[*,2,true].pdf',
                 IMGFiles : 'samples/Classic_Sample.pdf_{page}.png',
                 JSONFile : 'samples/Classic_Sample.pdf_{page}.js',
                 ThumbIMGFiles : 'samples/Classic_Sample.pdf_{page}_thumb.png
                 pdf2json
                 pdftk
                 icePDF
                 https://pdf-renderer.dev.java.net/examples.html
                 jgoodies-common
                 jpdftweak-windows-x64-1.1
                 https://code.google.com/p/jmupdf/
                 */
//                    SWFFile: escape(getSwfUrl()),

                // 必须显示配置
                JSONFile: 'samples/Classic_Sample.pdf_{page}.js',  // 必须配置了这个菜行。。。
                // JSONDataType : 'jsonp', 设置jsonfile制定的返回类型
                //SearchServiceUrl : 'dp/search',
                // page 不会被翻译
                SearchServiceUrl: escape('fp/search?page={page}&searchterm=[searchterm]'),
                //DocSizeQueryService : "dd?id=${requestScope.doc.id}",
                /* 有些参数使用boolean 会被忽略, 在转换为参数时会被忽略  */
                SearchMatchAll: 'true',

                ViewModeToolsVisible: 'true',
                ZoomToolsVisible: 'true',
                NavToolsVisible: 'true',
                CursorToolsVisible: 'true',
                SearchToolsVisible: 'true',
                Scale: 1.0,
                //
                FullScreenAsMaxWindow: 'false',
                FitPageOnLoad: 'false',
                FitWidthOnLoad: 'false',
                MinZoomSize: 0.5,
                MaxZoomSize: 5,
                ZoomTime: 0.5,
                ZoomInterval: 0.1,
                ZoomTransition: 'easeOut',
                //
                InitViewMode: 'Portrait',
                RenderingOrder: 'flash,flash',
                key: '$659bda0e09811de23c6',
                ProgressiveLoading: 'true',

                WMode: 'window'
            }
        });
    });
    // ]]>
</script>
</body>
</html>